分类
联系方式
  1. 新浪微博
  2. E-mail

Python Slots 属性

介绍

在 Python 中,类和类的实例都可以动态地添加属性和方法,这种动态性是以内存开销和复杂度为代价的。

在实际中,很多时候,我们并不需要类的这种动态性。Python 提供了 __slots__ 属性,来限制类的属性,设定之后,只能访问 __slots__ 中给出的属性。

带来的好处:

  1. 节省内存:省去了动态化特性的额外开销
  2. 属性访问加快:结构更简单,访问更快

示例

参考 Edifice:

class _WidgetTree(object):
    __slots__ = ("component", "children")